package com.qiaofang.collectmanage.stub.facade;
import com.qiaofang.collectmanage.stub.request.*;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import com.qiaofang.collectmanage.stub.response.RemoveSubTaskResponse;
import com.qiaofang.collectmanage.stub.response.SaveSubTaskResponse;
import com.qiaofang.collectmanage.stub.response.SearchSubTaskResponse;
import com.qiaofang.collectmanage.stub.response.UpdateSubTaskResponse;
import com.qiaofang.collectmanage.stub.response.ListSubTaskResponse;
import com.qiaofang.collectmanage.stub.response.GetSubTaskBySubTaskResponse;

import com.qiaofang.collectmanage.stub.response.GetSubTaskByUuidResponse;
import com.qiaofang.collectmanage.stub.response.ListSubTaskByUuidsResponse;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
@FeignClient(name = "collectmanage",url="${feign.url.collectmanage}")
@RequestMapping("/crawlerSubTask")
@Api(tags = "crawlerSubTask", description = "爬虫关联频道")
public interface CrawlerSubTaskFacade {

    @RequestMapping(value = "/getCrawlerSubTaskByUuid", method = RequestMethod.POST)
    @ApiOperation(value = "查询对象根据uuid", notes = "查询对象根据uuid")
    @ApiImplicitParams({@ApiImplicitParam(name = "request", value = "请求参数", dataType = "GetCrawlerSubTaskByUuidRequest") })
    public GetSubTaskByUuidResponse getCrawlerSubTaskByUuid(GetCrawlerSubTaskByUuidRequest request);

    @RequestMapping(value = "/getCrawlerSubTaskBySubTask", method = RequestMethod.POST)
    @ApiOperation(value = "查询对象根据对象", notes = "查询对象根据对象")
    @ApiImplicitParams({@ApiImplicitParam(name = "request", value = "请求参数", dataType = "GetCrawlerSubTaskBySubTaskRequest") })
    public GetSubTaskBySubTaskResponse getCrawlerSubTaskBySubTask(GetCrawlerSubTaskBySubTaskRequest request);


    @RequestMapping(value = "/saveSubTask", method = RequestMethod.POST)
    @ApiOperation(value = "保存对象", notes = "保存对象")
    @ApiImplicitParams({@ApiImplicitParam(name = "request", value = "请求参数", dataType = "SaveCrawlerSubTaskRequest") })
    public SaveSubTaskResponse saveCrawlerSubTask(SaveCrawlerSubTaskRequest request);

    @RequestMapping(value = "updateCrawlerSubTask", method = RequestMethod.POST)
    @ApiOperation(value = "更新对象", notes = "更新对象")
    @ApiImplicitParams({@ApiImplicitParam(name = "request", value = "请求参数", dataType = "UpdateCrawlerSubTaskRequest") })
    public  UpdateSubTaskResponse updateCrawlerSubTask(UpdateCrawlerSubTaskRequest request);


    @RequestMapping(value = "removeCrawlerSubTask", method = RequestMethod.POST)
    @ApiOperation(value = "删除对象", notes = "删除对象")
    @ApiImplicitParams({@ApiImplicitParam(name = "request", value = "请求参数", dataType = "RemoveCrawlerSubTaskRequest") })
    public  RemoveSubTaskResponse removeCrawlerSubTask(RemoveCrawlerSubTaskRequest request);

    @RequestMapping(value = "searchCrawlerSubTask", method = RequestMethod.POST)
    @ApiOperation(value = "搜索对象", notes = "搜索对象")
    @ApiImplicitParams({@ApiImplicitParam(name = "request", value = "请求参数", dataType = "SearchCrawlerSubTaskRequest") })
    public  SearchSubTaskResponse searchCrawlerSubTask(SearchCrawlerSubTaskRequest request);

    @RequestMapping(value = "listCrawlerSubTask", method = RequestMethod.POST)
    @ApiOperation(value = "获取多个对象不包含删的的", notes = "获取多个对象")
    @ApiImplicitParams({@ApiImplicitParam(name = "request", value = "请求参数", dataType = "ListCrawlerSubTaskRequest") })
    public ListSubTaskResponse listCrawlerSubTask(ListCrawlerSubTaskRequest request);


    @RequestMapping(value = "listCrawlerSubTaskByUuids", method = RequestMethod.POST)
    @ApiOperation(value = "根据uuids集合获取集合包含删除的", notes = "根据uuids集合获取集合包含删除的")
    @ApiImplicitParams({@ApiImplicitParam(name = "request", value = "请求参数", dataType = "ListCrawlerSubTaskByUuidsRequest") })
    public ListSubTaskByUuidsResponse listCrawlerSubTaskByUuids(ListCrawlerSubTaskByUuidsRequest request);
}
